home *** CD-ROM | disk | FTP | other *** search
/ GFX Sensations 1 / Graphic Sensations - Volume 1.iso / tools / amiga / misc / catmake.lha / CatMake < prev   
Encoding:
Text File  |  1994-07-01  |  47.8 KB  |  1,412 lines

  1. /***********************************/
  2. /* Make one or more catalog-pic(s) */
  3. /* written by Rodja Adolph in 1993 */
  4. /* SHAREWARE with 10$ fee          */
  5. /* Contact me under :              */
  6. /* EMail: ronnie@aworld.aworld.de  */
  7. /* Anything else is mentioned in   */
  8. /* the docfile you should already  */
  9. /* have read...                    */
  10. /*                                 */
  11. /* THIS text isnt the doc :)       */
  12. /***********************************/
  13. CMVersion='V1.18'                 /* Version */
  14. NeedVersion='1.8'                 /* Configfile-Version needed at least */
  15.  
  16. Shuffle="NO"
  17. MFRMode=0                          /* Set to 0 and try Multiselect of files  */
  18.                                    /* If it works then keep 0.If not and you */
  19.                                    /* DO have MFR in c:,then set to 1        */
  20.                                    /* Somehow obselete now...But still here..*/
  21.  
  22. PARSE ARG CatBase "," ERGo "," WildCard "," FileData
  23. IF CatBase~="" THEN DO
  24.  Arguments=1
  25.  useD=1
  26.  dum1=LASTPOS('/',CatBase)
  27.  IF dum1~=0 THEN thedir=LEFT(CatBase,dum1)
  28.             ELSE DO
  29.                   dum1=POS(':',CatBase)
  30.                   IF dum1~=0 THEN thedir=LEFT(CatBase,dum1)
  31.                              ELSE thedir='SYS:'
  32.                  END
  33.  dirm=UPPER(WORD(FileData,1))
  34.  FileData=DELWORD(FileData,1,1)
  35.  IF dirm="WHOLE" THEN thedir=FileData
  36.                  ELSE DO
  37.                        i=0
  38.                        DO WHILE INDEX(FileData,'"')~=0
  39.                         i=i+1
  40.                         PARSE VAR FileData '"' fl.i '"' FileData
  41.                        END
  42.                        fl.0=i                       
  43.                       END
  44. END
  45. ELSE Arguments=0
  46.  
  47. /*
  48. zzz=trace("i") /* trace intermediates */
  49. */
  50. zzz=trace("o") /* trace off */
  51.  
  52. ADDRESS "ADPro"                    /* Addressing Host */
  53. OPTIONS RESULTS
  54. SIGNAL ON BREAK_C                  /* Trap on errors and breaks */
  55. SIGNAL ON BREAK_D
  56. SIGNAL ON SYNTAX
  57.  
  58. WindowOpen=0
  59. NL='0a'x                           /* Newline-Code */
  60. LUP = '1b'x||'M'                   /* LineUp-Code for CON: */
  61. AddedHeader=0
  62. 24Bit=16777216                     /* Just for nicer textoutput */
  63. 8BitGrey="256G"
  64. DelList.0=0
  65. PPList.0=0
  66.  
  67. IF ~SHOW('Libraries','rexxsupport.library') THEN DO
  68.  IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN CALL ERR("Couldn't allocate rexxsupport.library!"||NL||"File not found?!")
  69. END
  70.  
  71. LFORMAT                            /* Get current Loader */
  72. OldLoader=adpro_result
  73.  
  74. SFORMAT                            /* Get current Saver */
  75. OldSaver=adpro_result
  76.  
  77. /*
  78. SCREEN_TYPE                        /* Get current Screentype */
  79. SType=adpro_result
  80. */
  81.  
  82. VERSION                            /* Check for version if ListViews possible */
  83. IF adpro_result>="ADPro 2.3.0" THEN Up2Date=1
  84.                                ELSE Up2Date=0
  85.  
  86. IF Up2Date THEN DO                 /* Build default Listview-Lists */
  87.  GETLIST Colors
  88.  PARSE VAR AdPro_Result '"' . '" ' ColorList
  89.  GETLIST Savers
  90.  PARSE VAR AdPro_Result '"' . '" ' SaverList
  91.  TileList='3x2 3x3 4x3 4x4 5x4 5x5 6x5 6x6 Custom Auto'
  92. END
  93.  
  94. IF OPEN(Prefs,"ENVARC:CatMakeAdPro.prefs","R") THEN DO /* Check for PrefsFile */
  95.  PrefsVersion=SUBSTR(WORD(READLN(Prefs),2),2)
  96.  IF NeedVersion>PrefsVersion | "9.0"<PrefsVersion THEN DO
  97.   IF Shuffle="YES" THEN ADPRO_TO_FRONT                      /* Screen2Front */
  98.   OKAY2 'Prefs-File is not Up2Date !'||NL||' Version needed : '||NeedVersion||NL||' Version found  : '||PrefsVersion||NL||'Use the Built-In defaults?'
  99.   IF rc=0 THEN EXIT
  100.           ELSE DO
  101.                 zzz=CLOSE(Prefs)
  102.                 CALL SetDefs
  103.                END
  104.  END
  105.  DO i=1 TO 4
  106.   zzz=READLN(Prefs)
  107.  END
  108.  FName=UPPER(WORD(READLN(Prefs),3)) /* Load settings */
  109.  FSize=UPPER(WORD(READLN(Prefs),3))
  110.  FType=UPPER(WORD(READLN(Prefs),3))
  111.  TextR=UPPER(WORD(READLN(Prefs),3))
  112.  TextG=UPPER(WORD(READLN(Prefs),3))
  113.  TextB=UPPER(WORD(READLN(Prefs),3))
  114.  Sizing=UPPER(WORD(READLN(Prefs),3))
  115.  F2Name=UPPER(WORD(READLN(Prefs),3))
  116.  F2Size=UPPER(WORD(READLN(Prefs),3))
  117.  F2Type=UPPER(WORD(READLN(Prefs),3))
  118.  SizeR=UPPER(WORD(READLN(Prefs),3))
  119.  SizeG=UPPER(WORD(READLN(Prefs),3))
  120.  SizeB=UPPER(WORD(READLN(Prefs),3))
  121.  Seperate=UPPER(WORD(READLN(Prefs),3))
  122.  AddHeader=UPPER(WORD(READLN(Prefs),3))
  123.  HeaderName=UPPER(WORD(READLN(Prefs),3))
  124.  HeaderSize=UPPER(WORD(READLN(Prefs),3))
  125.  HeaderType=UPPER(WORD(READLN(Prefs),3))
  126.  HeaderEmbossDirection=UPPER(WORD(READLN(Prefs),3))
  127.  HeaderEmbossAmount=UPPER(WORD(READLN(Prefs),3))
  128.  HeaderStyle=UPPER(WORD(READLN(Prefs),3))
  129.  HeaderOffset=UPPER(WORD(READLN(Prefs),3))
  130.  CenterHeader=UPPER(WORD(READLN(Prefs),3))
  131.  HeaderR=UPPER(WORD(READLN(Prefs),3))
  132.  HeaderG=UPPER(WORD(READLN(Prefs),3))
  133.  HeaderB=UPPER(WORD(READLN(Prefs),3))
  134.  HeaderString=SUBSTR(READLN(Prefs),19)
  135.  zzz=READLN(Prefs)
  136.  zzz=READLN(Prefs)
  137.  IF ~Arguments THEN dirm=UPPER(WORD(READLN(Prefs),3))
  138.                ELSE zzz=READLN(Prefs)
  139.  Sorting=UPPER(WORD(READLN(Prefs),3))
  140.  SaveOnError=UPPER(WORD(READLN(Prefs),3))
  141.  ProcOnErr=UPPER(WORD(READLN(Prefs),3))
  142.  ProcOnStr=SUBSTR(READLN(Prefs),19)
  143.  CharStripping=UPPER(WORD(READLN(Prefs),3))
  144.  PARSE VAR CharStripping CharMain "+" CharExtension
  145.  TDir=SUBSTR(READLN(Prefs),19)
  146.  IF RIGHT(TDir,1)~=':' & RIGHT(TDir,1)~='/' THEN TDir=TDir||'/'
  147.  IF ~Arguments THEN WildCard=WORD(READLN(Prefs),3)
  148.                ELSE zzz=READLN(Prefs)
  149.  ExamineFiles=UPPER(WORD(READLN(Prefs),3))
  150.  ExamineNames=UPPER(WORD(READLN(Prefs),3))
  151.  Shuffle=UPPER(WORD(READLN(Prefs),3))
  152.  zzz=READLN(Prefs)
  153.  zzz=READLN(Prefs)
  154.  CatBasis=WORD(READLN(Prefs),3)
  155.  CatForm=UPPER(WORD(READLN(Prefs),3))
  156.  AddSaver=UPPER(WORD(READLN(Prefs),3))
  157.  CatMode=UPPER(WORD(READLN(Prefs),3))
  158.  Mode=UPPER(WORD(READLN(Prefs),3))
  159.  SizeMode=UPPER(WORD(READLN(Prefs),3))
  160.  Cols=WORD(READLN(Prefs),3)
  161.  PWI=WORD(READLN(Prefs),3)
  162.  PHE=WORD(READLN(Prefs),3)
  163.  PHEBack=PHE
  164.  TWI=WORD(READLN(Prefs),3)
  165.  THI=WORD(READLN(Prefs),3)
  166.  TMode=WORD(READLN(Prefs),3)
  167.  BorderR=UPPER(WORD(READLN(Prefs),3))
  168.  BorderG=UPPER(WORD(READLN(Prefs),3))
  169.  BorderB=UPPER(WORD(READLN(Prefs),3))
  170.  MixFactor=UPPER(WORD(READLN(Prefs),3))
  171.  MixR=UPPER(WORD(READLN(Prefs),3))
  172.  MixG=UPPER(WORD(READLN(Prefs),3))
  173.  MixB=UPPER(WORD(READLN(Prefs),3))
  174.  Back1R=UPPER(WORD(READLN(Prefs),3))
  175.  Back1G=UPPER(WORD(READLN(Prefs),3))
  176.  Back1B=UPPER(WORD(READLN(Prefs),3))
  177.  Back2R=UPPER(WORD(READLN(Prefs),3))
  178.  Back2G=UPPER(WORD(READLN(Prefs),3))
  179.  Back2B=UPPER(WORD(READLN(Prefs),3))
  180.  Back3R=UPPER(WORD(READLN(Prefs),3))
  181.  Back3G=UPPER(WORD(READLN(Prefs),3))
  182.  Back3B=UPPER(WORD(READLN(Prefs),3))
  183.  Back4R=UPPER(WORD(READLN(Prefs),3))
  184.  Back4G=UPPER(WORD(READLN(Prefs),3))
  185.  Back4B=UPPER(WORD(READLN(Prefs),3))
  186.  Back2Pos=UPPER(WORD(READLN(Prefs),3))
  187.  BackDir=UPPER(WORD(READLN(Prefs),3))
  188.  zzz=READLN(Prefs)
  189.  zzz=READLN(Prefs)
  190.  MakeAlt=UPPER(WORD(READLN(Prefs),3))
  191.  Colors=WORD(READLN(Prefs),3)
  192.  SForm=UPPER(WORD(READLN(Prefs),3))
  193.  SMode=UPPER(WORD(READLN(Prefs),3))
  194.  Extension=WORD(READLN(Prefs),3)
  195.  zzz=CLOSE(Prefs)
  196. END
  197. ELSE DO
  198.  zzz=CLOSE(Prefs)
  199.  CALL SetDefs                           /* No File -> defaults */
  200. END
  201.  
  202. MAIN:
  203.  
  204. TileList='"'||TMode||'" '||TileList /* Complete with TilingMode */
  205. IF FSize>F2Size THEN FSizeMax=FSize
  206.                 ELSE FSizeMax=F2Size
  207. IF Sizing="BOTTOM" THEN FSizeMax=FSize+F2Size+2
  208.  
  209.  
  210. IF ~Arguments THEN DO
  211.  IF Shuffle="YES" THEN ADPRO_TO_FRONT     /* Screen2Front */
  212.  OKAY2 'Do you want to use the'||NL||'   entire defaults?'||NL||'OK=Whole Cancel=Partial'
  213.  if rc=0 then useD=0
  214.          else useD=1
  215. END
  216.  
  217. IF useD=0 THEN DO                   /* Ask for all the settings... */
  218.  
  219.  /* Dirscanning or (Multi-)Select ? */
  220.  IF dirm="WHOLE" THEN DO
  221.                        OKS="Manual"
  222.                        OKS2="MULTI"
  223.                        CANS="Whole"
  224.                        CANS2="WHOLE"
  225.                       END
  226.                  ELSE DO
  227.                        OKS="Whole"
  228.                        OKS2="WHOLE"
  229.                        CANS="Manual"
  230.                        CANS2="MULTI"
  231.                       END
  232.  OKAY2 '"   Do you want to handle a'||NL||'      whole directory?'||NL||'OK='||OKS||'      Cancel='||CANS||'"'
  233.  if rc=0 then dirm=CANS2
  234.          else dirm=OKS2
  235.  
  236.  /* Save-Format for catalogs */
  237.  IF Up2Date THEN DO
  238.   ListView '"Saver for Catalogs ?"' 10 ITEMS '"'||CatForm||'" '||SaverList
  239.   IF rc>1 THEN CALL ERR('')
  240.   PARSE VAR adpro_result '"' CatForm '"' .  /* Get selected entry */
  241.  END
  242.  ELSE DO
  243.   GETSTRING '"Catalog SFORMAT-String ?"' CatForm
  244.            if rc~=0 then CALL ERR('')
  245.            CatForm=ADPro_Result
  246.  END
  247.  
  248.  /* Check if the user actually may choose between RAW & IMAGE or not */
  249.  CatModeBak=CatMode
  250.  CatMode=''
  251.  IF INDEX('GIF',UPPER(CatForm))~=0 THEN CatMode='IMAGE'
  252.  IF INDEX('JPEG QRT RENDITION SCULPT',UPPER(CatForm))~=0 THEN CatMode='RAW'
  253.  
  254.  /* If user may decide,then ask him now */
  255.  IF CatMode='' THEN DO
  256.  IF CatModeBak="RAW" THEN DO
  257.                            OKS="IMAGE"
  258.                            OKS2="IMAGE"
  259.                            CANS="RAW"
  260.                            CANS2="RAW"
  261.                           END
  262.                      ELSE DO
  263.                            OKS="RAW "
  264.                            OKS2="RAW"
  265.                            CANS="IMAGE"
  266.                            CANS2="IMAGE"
  267.                           END
  268.   OKAY2 'What type of File is that type ?'||NL||'OK='||OKS||'     or      Cancel='||CANS
  269.   IF rc=0 THEN CatMode=CANS2
  270.           ELSE CatMode=OKS2
  271.  END
  272.  
  273.  /* Scaling-Mode */
  274.  IF SizeMode="RELATIVE" THEN DO
  275.                            OKS="Fit   "
  276.                            OKS2="ABSOLUTE"
  277.                            CANS="Aspect"
  278.                            CANS2="RELATIVE"
  279.                           END
  280.                      ELSE DO
  281.                            OKS="Aspect"
  282.                            OKS2="RELATIVE"
  283.                            CANS="Fit"
  284.                            CANS2="ABSOLUTE"
  285.                           END
  286.  OKAY2 '" Shall the images be sized to'||NL||'fit each tile completely or to'||NL||'  be sized aspect-correctly?'||NL||'OK='||OKS||'    or  Cancel='||CANS||'"'
  287.  IF rc=0 THEN SizeMode=CANS2
  288.          ELSE SizeMode=OKS2
  289.  
  290.  /* Size of catalogs */
  291.  GETNUMBER '"Width of Catalogs ?"' PWI 20 9999
  292.           IF rc~=0 then CALL ERR('')
  293.           PWI=ADPro_Result
  294.  GETNUMBER '"Height of Catalogs ?"' PHE 20 9999
  295.           IF rc~=0 THEN CALL ERR('')
  296.           PHE=ADPro_Result
  297.           PHEBack=PHE
  298.  
  299.  /* Color-Mode */
  300.  IF mode="COLOR" THEN DO
  301.                        OKS="BW   "
  302.                        OKS2="BLACKWHITE"
  303.                        CANS="Color"
  304.                        CANS2="COLOR"
  305.                       END
  306.                  ELSE DO
  307.                        OKS="Color"
  308.                        OKS2="COLOR"
  309.                        CANS="BW"
  310.                        CANS2="BLACKWHITE"
  311.                       END
  312.  OKAY2 'Make Color or Black&White'||NL||'    Catalog-Picture?'||NL||'OK='||OKS||'        Cancel='||CANS
  313.  IF rc=0 THEN mode=CANS2
  314.          ELSE mode=OKS2
  315.  
  316.  /* If not truecolor,then ask now for number of colors/color-mode */
  317.  IF CatMode='IMAGE' THEN DO
  318.   IF Up2Date THEN DO
  319.    ListView '"Number of Colors"' 10 ITEMS '"'||Cols||'" '||ColorList
  320.    IF rc>1 THEN CALL ERR('')
  321.    PARSE VAR adpro_result '"' Cols '"' .
  322.   END
  323.   ELSE DO
  324.    GETSTRING "'How many Colors? (2-256,HAM8,CUST...)'" Cols
  325.    IF rc~=0 THEN CALL ERR('')
  326.    Cols=ADPro_Result
  327.   END
  328.  END
  329.  ELSE DO
  330.   IF mode="BLACKWHITE" THEN Cols=8BitGrey
  331.                        ELSE Cols=24Bit
  332.  END
  333.  
  334.  /* Headerstring-Queries */
  335.  OKAY2 'Add a headerstring to each catalog?'
  336.  IF rc=0 THEN AddHeader='NO'
  337.          ELSE DO
  338.   AddHeader='YES'
  339.   IF LEFT(HeaderString,1)='"' THEN Lef=''
  340.                               ELSE Lef='"'
  341.   IF RIGHT(HeaderString,1)='"' THEN Rig=''
  342.                                ELSE Rig='"'
  343.   GETSTRING '"Enter headerstring"' Lef||HeaderString||Rig
  344.   IF rc~=0 THEN CALL ERR('')
  345.   HeaderString=ADPro_Result
  346.   OKAY2 'Center headerstring horizontally?'
  347.   IF rc=0 THEN DO
  348.                 CenterHeader='NO'
  349.                 GETNUMBER '"X-Offset in Pixels?"' 1 1 9999
  350.                           IF rc~=0 then CALL ERR('')
  351.                           HeaderOffset=ADPro_Result
  352.                END
  353.           ELSE CenterHeader='YES'
  354.  END
  355.  
  356.  /* (Re-)Render ? */
  357.  IF MakeAlt="NO" THEN DO
  358.                        OKS="Yes"
  359.                        OKS2="YES"
  360.                        CANS="No"
  361.                        CANS2="NO"
  362.                       END
  363.                  ELSE DO
  364.                        OKS="No "
  365.                        OKS2="NO"
  366.                        CANS="Yes"
  367.                        CANS2="YES"
  368.                       END
  369.  OKAY2 'Do you want to also save'||NL||' as alternate Images ?'||NL||'(Under diff. filenames)'||NL||'OK='||OKS||'         Cancel='||CANS
  370.  IF rc=0 THEN MakeAlt=CANS2
  371.          ELSE DO
  372.           /* Yes,please...*/
  373.           MakeAlt=OKS2
  374.  
  375.           /* Ask several things...as above */
  376.           IF Extension~=SForm THEN FFlag=1
  377.                               ELSE FFlag=0
  378.  
  379.           IF Up2Date THEN DO
  380.            ListView '"Saver for Images?"' 10 ITEMS '"'||SForm||'" '||SaverList
  381.            IF rc>1 THEN CALL ERR('')
  382.            PARSE VAR adpro_result '"' SForm '"' .
  383.           END
  384.           ELSE DO
  385.            GETSTRING '"Catalog SFORMAT-String ?"' SForm
  386.            IF rc~=0 THEN CALL ERR('')
  387.            SForm=ADPro_Result
  388.           END
  389.  
  390.           SModeBak=SMode
  391.           SMode=''
  392.           IF INDEX('GIF',UPPER(SForm))~=0 THEN SMode='IMAGE'
  393.           IF INDEX('JPEG QRT RENDITION SCULPT',UPPER(SForm))~=0 THEN SMode='RAW'
  394.  
  395.           IF SMode='' THEN DO
  396.            IF SModeBak="RAW" THEN DO
  397.                                    OKS="IMAGE"
  398.                                    OKS2="IMAGE"
  399.                                    CANS="RAW"
  400.                                    CANS2="RAW"
  401.                                   END
  402.                              ELSE DO
  403.                                    OKS="RAW "
  404.                                    OKS2="RAW"
  405.                                    CANS="IMAGE"
  406.                                    CANS2="IMAGE"
  407.                                   END
  408.            OKAY2 'What type of File is that type ?'||NL||'OK='||OKS||'     or      Cancel='||CANS
  409.            IF rc=0 THEN SMode=CANS2
  410.                    ELSE SMode=OKS2
  411.           END
  412.  
  413.           IF SMode="IMAGE" THEN DO
  414.            IF Up2Date THEN DO
  415.             ListView '"Number of Colors"' 10 ITEMS '"'||Colors||'" '||ColorList
  416.             IF rc>1 THEN CALL ERR('')
  417.             PARSE VAR adpro_result '"' Colors '"' .
  418.            END
  419.            ELSE DO
  420.             GETSTRING "'How many Colors? (2-256,HAM8,CUST...)'" Colors
  421.             IF rc~=0 THEN CALL ERR('')
  422.             Colors=ADPro_Result
  423.            END
  424.           END
  425.           ELSE Colors=24Bit
  426.  
  427.           IF FFlag=1 THEN FFlag=Extension
  428.                      ELSE FFlag=SForm
  429.           GETSTRING '"Extension WITHOUT >.< ?"' FFlag
  430.           IF rc~=0 THEN CALL ERR('')
  431.           Extension=ADPro_Result
  432.          END
  433. END
  434.  
  435. IF ~Arguments THEN DO
  436.  /* Get files to work on */
  437.  fl.0=0                             /* FileNames-Array with fl.0 holding the */
  438.                                     /* number of entries                     */
  439.  IF dirm='MULTI' THEN DO
  440.   IF MFRMode=1 THEN DO
  441.    /* Use MFR to select some files */
  442.    ADPRO_TO_BACK
  443.    ADDRESS COMMAND 'C:MFR >'||TDir||'Files TITLE="Select pictures to catalogize" MULTI'
  444.    IF ~OPEN(File,TDir||'Files','R') THEN CALL ERR('Couldnt open MFR-Output file!')
  445.    i=0
  446.    /* Read selected files from temporary file and add to FileList fl. */
  447.    DO WHILE ~EOF(file)
  448.     line=READLN(file)
  449.     IF LENGTH(line)=0 THEN LEAVE
  450.     i=i+1
  451.     fl.i=line
  452.     DO WHILE index(fl.i,"//")~=0
  453.      fl.i=DELSTR(fl.i,index(fl.i,"//"),1)
  454.     END
  455.    END
  456.    fl.0=i                           /* Store number of entries */
  457.    ab=CLOSE(file)
  458.    IF Shuffle="YES" THEN ADPRO_TO_FRONT
  459.    IF fl.0=0 THEN CALL ERR('No Files found')
  460.   END
  461.   ELSE DO
  462.    /* Use AdPro for multiselecting */
  463.    GETFILES '"Select pictures to catalogize"'
  464.    IF rc~=0 THEN CALL ERR('')
  465.    fltemp=adpro_result /* Long string with filenames like "a" "b" "c" */
  466.    IF WORDS(fltemp)=1 THEN fltemp='"'||fltemp||'"'
  467.    i=0
  468.    DO WHILE INDEX(fltemp,'"')~=0 /* Repeat until no " can be found */
  469.     i=i+1
  470.     /* Get the next filename out of fltemp and also remove it from fltemp afterwards */
  471.     PARSE VAR fltemp '"' fl.i '"' fltemp
  472.    END
  473.    fl.0=i
  474.    IF Shuffle="YES" THEN ADPRO_TO_FRONT
  475.    IF fl.0=0 THEN CALL ERR('No Files found')
  476.   END
  477.  
  478.   /* Now get the path (all files in the same dir) for some other thing */
  479.   /* If there's no / or : then we default to SYS:                      */
  480.   dum1=LASTPOS('/',fl.1)
  481.   IF dum1~=0 THEN thedir=LEFT(fl.1,dum1)
  482.              ELSE DO
  483.                    dum1=POS(':',fl.1)
  484.                    IF dum1~=0 THEN thedir=LEFT(fl.1,dum1)
  485.                               ELSE thedir='SYS:'
  486.                   END
  487.  END
  488. END
  489.  
  490. IF dirm="WHOLE" THEN DO
  491.  /* Whole-Dir-Mode */
  492.  IF ~Arguments THEN DO
  493.   GETDIR "'Work on which dir?'"
  494.   IF rc~=0 THEN CALL ERR('')
  495.   thedir=adpro_result               /* Our working-directory */
  496.  END
  497.  IF RIGHT(thedir,1)~=':' & RIGHT(thedir,1)~='/' THEN thedir=thedir||'/'
  498.  
  499.  /* Get a filelist with # seperators like a#b#c */
  500.  fltemp=SHOWDIR(thedir,'File','#')
  501.  IF ~Arguments & Shuffle="YES" THEN ADPRO_TO_FRONT /* Perhaps some Reqpatcher sent us to front */
  502.  IF fltemp='' THEN CALL err('No files found!')
  503.  i=1
  504.  
  505.  /* Get actual files */
  506.  DO WHILE INDEX(fltemp,'#')~=0
  507.   fl.i=LEFT(fltemp,INDEX(fltemp,'#')-1)
  508.   fltemp=DELSTR(fltemp,1,INDEX(fltemp,'#'))
  509.   i=i+1
  510.  END
  511.  fl.i=fltemp /* We still have one filename in fltemp */
  512.  fl.0=i
  513. END
  514.  
  515. IF ~Arguments THEN DO
  516.  /* Wildcard-Queries */
  517.  OKAY2 'Do you want to use a wildcard to filter files?'
  518.  IF rc=0 THEN Wildcard='OFF'
  519.          ELSE DO
  520.                GETSTRING '"Enter wildcard (use 1-2 * and perhaps a ~)"' Wildcard
  521.                IF rc~=0 THEN CALL ERR('')
  522.                Wildcard=ADPro_Result
  523.                IF INDEX(Wildcard,"*")=0 THEN Wildcard="*"
  524.               END
  525. END
  526.  
  527. /* Sorting-Mode */
  528. IF ~UseD & Up2Date THEN DO
  529.  IF Sorting="ALPHA" THEN DO
  530.                           OKS="Custom"
  531.                           OKS2="CUSTOM"
  532.                           CANS="Alpha"
  533.                           CANS2="ALPHA"
  534.                          END
  535.                     ELSE DO
  536.                           OKS="Alpha "
  537.                           OKS2="ALPHA"
  538.                           CANS="Custom"
  539.                           CANS2="CUSTOM"
  540.                          END
  541.  OKAY2 '"Use alphabetical or custom sorting?'||NL||'    OK='||OKS||'      Cancel='||CANS||'"'
  542.  IF rc=0 THEN Sorting=CANS2
  543.          ELSE Sorting=OKS2
  544. END
  545. IF ~Up2Date THEN Sorting="ALPHA"
  546.  
  547. IF LEFT(TheDir,1)='"' THEN TheDir=DELSTR(TheDir,1,1)
  548.  
  549. IF ~Arguments THEN DO
  550.  /* Get basename for catalogs */
  551.  GETFILE "'Enter CatalogBaseName'" '"'||TheDir||'"' CatBasis
  552.  IF rc~=0 THEN CALL ERR('')
  553.  CatBase=ADPro_Result
  554. END
  555.  
  556. /* Get path+name seperately for catalogs */
  557. CatDir=''
  558.  dum1=LASTPOS('/',CatBase)
  559.  IF dum1~=0 THEN DO
  560.                   CatBasis=SUBSTR(CatBase,dum1+1)
  561.                   CatDir=LEFT(CatBase,dum1)
  562.                  END
  563.             ELSE DO
  564.                   dum1=POS(':',CatBase)
  565.                   IF dum1~=0 THEN DO
  566.                                    CatBasis=SUBSTR(CatBase,dum1+1)
  567.                                    CatDir=LEFT(CatBase,dum1)
  568.                                   END
  569.                              ELSE CatBasis='_Catalog.'
  570.                  END
  571.  
  572. /* Apply Wildcard */
  573. IF Wildcard~="OFF" & Wildcard~="*" & fl.0>0 & fl.0~="FL.0" THEN DO
  574.  FL0Back=fl.0
  575.  WCard=" "
  576.  WildBack=Wildcard
  577.  Wildcard=UPPER(Wildcard)
  578.  IF LEFT(Wildcard,1)="~" THEN DO
  579.                                invert=1
  580.                                Wildcard=SUBSTR(Wildcard,2)
  581.                               END
  582.                          ELSE invert=0
  583.  WMode=INDEX(Wildcard,"*")
  584.  IF WMode=0 THEN LEAVE
  585.  IF WMode=LENGTH(Wildcard) THEN WMode=0 /*WMode=0 ->right | WMode=1 ->left*/
  586.  WMode2=INDEX(Wildcard,"*",WMode+1)
  587.  IF WMode2~=0 THEN DO
  588.   IF WMode2=WMode+1 THEN Wildcard=SUBSTR(Wildcard,1,WMode)||SUBSTR(Wildcard,WMode+2)
  589.                     ELSE DO
  590.                           WModeBack=WMode
  591.                           WMB2=WMode
  592.                           WMode="-1"  /* two '*' */
  593.                          END
  594.  END
  595.  SELECT                        /* SetUp partial wildcards */
  596.   WHEN WMode="-1" THEN NOP
  597.   WHEN WMode=1 THEN WCard=SUBSTR(Wildcard,2)
  598.   WHEN WMode=0 THEN WCard=LEFT(Wildcard,LENGTH(Wildcard)-1)
  599.   OTHERWISE DO
  600.              WCard1=LEFT(Wildcard,WMode-1)
  601.              WCard2=SUBSTR(Wildcard,WMode+1)
  602.             END
  603.  END
  604.  
  605.  DO i=1 TO fl.0
  606.   remove=invert
  607.   WLen=LENGTH(WCard)           /* Some "constants" for speedup */
  608.   FLTry=UPPER(fl.i)
  609.   IF LEFT(FLTry,WLen)~=WCard THEN FLLeftTest=1
  610.                              ELSE FLLeftTest=0
  611.  
  612.   WCardB=SUBSTR(Wildcard,WMode2+1)
  613.  
  614.   SELECT
  615.    WHEN WMode="-1" THEN DO     /* double "*" */
  616.     Skip=WMode
  617.     WMode=WModeBack
  618.     WModeBack=Skip
  619.     Skip=0
  620.     IF WMode~=1 THEN DO
  621.      IF LEFT(FLTry,WMode-1)~=LEFT(Wildcard,WMode-1) THEN DO
  622.       remove=ABS(invert-1)
  623.       skip=1
  624.      END
  625.     END
  626.     IF ~skip THEN DO
  627.      IF INDEX(FLTry,SUBSTR(Wildcard,WMB2+1,WMode2-WMB2-1))=0 THEN DO
  628.       remove=ABS(invert-1)
  629.       skip=1
  630.      END
  631.     END
  632.     IF WMode2~=LENGTH(Wildcard) & ~skip THEN DO
  633.      IF RIGHT(FLTry,LENGTH(WCardB))~=WCardB THEN DO
  634.       remove=ABS(invert-1)
  635.      END
  636.     END
  637.     Skip=WMode
  638.     WMode=WModeBack
  639.     WModeBack=Skip
  640.    END
  641.    WHEN WMode=1 THEN DO        /* "*" on first char */
  642.     IF RIGHT(FLTry,WLen)~=WCard THEN remove=ABS(invert-1)
  643.    END
  644.    WHEN WMode=0 THEN DO        /* "*" on last char */
  645.     IF FLLeftTest THEN remove=ABS(invert-1)
  646.    END
  647.    OTHERWISE DO                /* "*" anywhere */
  648.     IF RIGHT(FLTry,LENGTH(WCard2)))~=WCard | FLLeftTest THEN remove=ABS(invert-1)
  649.    END
  650.   END
  651.  
  652.   IF remove THEN DO            /* Remove entry */
  653.    IF fl.0>i THEN DO
  654.     DO j=i TO fl.0-1
  655.      k=j+1
  656.      fl.j=fl.k
  657.     END
  658.    END
  659.    fl.0=fl.0-1
  660.    i=i-1
  661.   END
  662.  
  663.   IF i>=fl.0 THEN LEAVE i
  664.  END
  665.  Wildcard=WildBack             /* Restore original Wildcard */
  666.  SAY "Removed "||FL0Back-fl.0||" entries due to wildcarding"
  667. END
  668.  
  669. /* Now possibly check for archives...*/
  670. DO i=1 TO fl.0
  671.  IF dirm='MULTI' THEN flcat=fl.i
  672.                  ELSE flcat=thedir||fl.i
  673.  IF ExamineNames="YES" | ExamineFiles="YES" THEN DO  /* Check for LhA/Lzh/pp files */
  674.   SELECT
  675.    WHEN ExamineNames="YES" & (UPPER(RIGHT(flcat,4))=".LZH" | UPPER(RIGHT(flcat,4))=".LHA") THEN DO
  676.     flcat=UnPack("LHA",flcat,thedir)
  677.     IF dirm='MULTI' THEN fl.i=thedir||flcat
  678.                     ELSE fl.i=flcat
  679.    END
  680.    WHEN ExamineNames="YES" & UPPER(RIGHT(flcat,3))=".PP" THEN CALL UnPack("PP",flcat,thedir)
  681.    WHEN ExamineFiles="YES" & ExamineFile(flcat)="LHA" THEN DO
  682.     flcat=UnPack("LHA",flcat,thedir)
  683.     IF dirm='MULTI' THEN fl.i=thedir||flcat
  684.                     ELSE fl.i=flcat
  685.    END
  686.    WHEN ExamineFiles="YES" & ExamineFile(flcat)="PP" THEN CALL UnPack("PP",flcat,thedir)
  687.    OTHERWISE NOP
  688.   END
  689.  END
  690. END
  691.  
  692. /* Now sort the filelist */
  693. IF fl.0>1 THEN DO
  694.  RG=fl.0                  /* DontKnowItsName-Sortalgo,twice as fast as BubbleSort */
  695.  DO UNTIL RG=1
  696.   MAX=''
  697.   DO i=1 TO RG
  698.    IF UPPER(fl.i)>=MAX THEN DO
  699.                    MAX=UPPER(fl.i)
  700.                    entry=i
  701.                   END
  702.   END
  703.   b=fl.RG
  704.   fl.RG=fl.entry
  705.   fl.entry=b
  706.   RG=RG-1
  707.  END
  708. END
  709.  
  710. /* Now checking if catalogs exist in the catalogdir and ask what to do */
  711. /* Catalogs are identified from the current basename...                */
  712.  AlreadyAsked=0
  713.  OverFlag=1
  714.  CAPFL=SHOWDIR(CatDir,'File')
  715.  IF WORDS(CAPFL)>0 THEN DO
  716.   DO i=1 TO WORDS(CAPFL)
  717.    IF (SUBSTR(WORD(CAPFL,i),1,LASTPOS('.',WORD(CAPFL,i)))=catbasis) | (LEFT(WORD(CAPFL,i),LENGTH(catbasis))=catbasis & RIGHT(WORD(CAPFL,i),4)='.bak') THEN DO
  718.    /* Found existing catalog */
  719.     IF ~Arguments THEN DO
  720.      IF ~AlreadyAsked & SUBSTR(WORD(CAPFL,i),1,LASTPOS('.',WORD(CAPFL,i)))=catbasis THEN DO
  721.       OKAY2 '"   Overwrite or rename'||NL||'    existing catalog ?'||NL||'OK=Overwrite Cancel=Rename"'
  722.       OverFlag=rc
  723.       AlreadyAsked=1
  724.      END
  725.      IF ~OverFlag THEN ADDRESS COMMAND 'rename "'||catdir||WORD(CAPFL,i)||'" "'||catdir||WORD(CAPFL,i)||'.bak"'
  726.     END
  727.    END
  728.   END
  729.  END
  730.  IF catdir=thedir THEN DO
  731.   /* We must also delete this entry from the FileList */
  732.   DO j=1 TO fl.0
  733.     IF INDEX(fl.j,catbasis)~=0 THEN DO                 /* Delete entry */
  734.                                      IF fl.0>j THEN DO
  735.                                       DO k=j TO fl.0-1
  736.                                        l=k+1
  737.                                        fl.k=fl.l
  738.                                       END
  739.                                      END
  740.                                      fl.0=fl.0-1
  741.                                     END
  742.   END
  743.  END
  744.  
  745. /* The Listview for the tiling */
  746. IF Up2Date | Arguments THEN DO
  747.  IF ~Arguments THEN DO
  748.   ListView '"Tiling for '||fl.0||' pics"' 10 ITEMS TileList
  749.   IF rc>1 THEN CALL ERR('')
  750.   PARSE VAR adpro_result '"' ERGo '"' .
  751.  END
  752.  IF ERGo~='Auto' & ERGo~='Custom' THEN PARSE VAR ERGo TWI 'x' THI .
  753.  ELSE DO
  754.   IF ERGo='Custom' THEN CALL QueryTiling
  755.   IF ERGo='Auto' THEN DO
  756.    /* Automode to fit all pics on one catalog */
  757.    TWI=0
  758.    THI=0
  759.    dum1=1
  760.    DO UNTIL TWI*THI>=fl.0
  761.     IF dum1 THEN DO
  762.                   TWI=TWI+1
  763.                   dum1=0
  764.                  END
  765.             ELSE DO
  766.                   THI=THI+1
  767.                   dum1=1
  768.                  END
  769.    END
  770.   END
  771.  END
  772. END
  773. ELSE CALL QueryTiling
  774.  
  775. /* Size of each tile in pixels */
  776. IF AddHeader='YES' THEN PHE=PHE-HeaderSize-2
  777. TWID=TRUNC((PWI-TWI-1)/TWI)
  778. THEI=TRUNC((PHE-THI-1)/THI)
  779.  
  780. /* Perhaps do a custom-sorting now */
  781. IF Sorting='CUSTOM' & Up2Date THEN DO
  782.  FLA=''
  783.  DO i=1 to fl.0
  784.   IF dirm='MULTI' THEN Dummy=fl.i
  785.                   ELSE Dummy=thedir||fl.i
  786.   FString=Dummy
  787.   IF INDEX(FString,' ')~=0 THEN CALL ERR('Spaces in filenames arent allowed!')
  788.   IF VERIFY(FString,'/:','MATCH')~=0 THEN DO
  789.    IF LastPos('/',FString)=0 THEN DO
  790.     IF Index(FString,':')~=0 THEN FString=substr(FString,Index(FString,':')+1)
  791.                                      END
  792.    ELSE FString=substr(FString,lastpos('/',FString)+1)
  793.   END
  794.   FLA=FLA||'"'||FString||'" '
  795.  END
  796.  /* FLA holds now all filenames (NO paths!) in quotes */
  797.  i=0
  798.  FLABack=FLA
  799.  DO UNTIL WORDS(FLABack)=1
  800.   ListView '"Next in custom order?"' 10 ITEMS FString||' '||FLABack
  801.   IF rc>1 THEN CALL ERR('Cancelled by user')
  802.   PARSE VAR adpro_result '"' ERG '"' .
  803.   idc=FIND(FLA,'"'||ERG||'"')
  804.   idc2=FIND(FLABack,'"'||ERG||'"')
  805.   IF idc=0 THEN CALL ERR('Internal Error -5')
  806.   i=i+1
  807.   flb.i=fl.idc
  808.   FLABack=DELWORD(FLABack,idc2,WORDS(ERG))
  809.  END
  810.  i=i+1
  811.  idc=FIND(FLA,SUBWORD(FLABack,1,WORDS(FLABack)))
  812.  flb.i=fl.idc
  813.  flb.0=i
  814.  DO i=0 to flb.0
  815.   fl.i=flb.i
  816.  END
  817. END
  818. ELSE DO
  819.  IF Sorting='CUSTOM' & ~Up2Date THEN OKAY1 'Custom sorting needs AdPro >=2.30 !'
  820. END
  821.  
  822. cats=1    /* Number of catalogs */
  823. k=0
  824. i=0
  825.  
  826. /* Setup catalogs with whole filenames (incl. path) */
  827. IF fl.0=0 THEN CALL ERR('No files found to catalogize ?!')
  828. DO i=1 TO fl.0
  829.   k=k+1
  830.   IF dirm='MULTI' THEN cat.cats.k=fl.i
  831.                   ELSE cat.cats.k=thedir||fl.i
  832.   cat.cats.0=k
  833.   IF k=TWI*THI THEN DO
  834.                      k=0
  835.                      cats=cats+1
  836.                      cat.cats.0=0
  837.                     END
  838. END
  839.  
  840. IF cat.cats.0=0 THEN cats=cats-1
  841.  
  842. /* First text-output... */
  843. IF ~Arguments THEN ADPRO_TO_BACK
  844. /* Arrange a grammar-correct string ;-) */
  845. IF cats>1 THEN dum1='s each'
  846.           ELSE dum1=''
  847. IF cat.1.0>1 THEN dum2='s'
  848.              ELSE dum2=''
  849. /* Open window for Text-Output with special Window-Header */
  850. IF ~open(CON,'con:15/15/500/200/CatMake '||CMVersion||' : Processing '||cats||' catalog'||dum1||' with '||cat.1.0||' tile'||dum2||'!/SCREEN ADPro','W') THEN CALL ERR('Error opening output-window!')
  851. WindowOpen=1
  852.  
  853. /* abc serves as dummy variable... */
  854. zzz=WriteLn(CON,'')
  855. zzz=WriteLn(CON,'')
  856. DO i=1 TO cats                       /********** Make catalog(s) **********/
  857.  reallyloaded=0
  858.  LFORMAT 'UNIVERSAL'
  859.  SFORMAT 'IFF'
  860.  zzz=WriteLn(CON,LUP||'                                                                       ')
  861.  zzz=WriteLn(CON,LUP||'Processing catalog #'||i||copies(' ',length(cats)-length(i))||' :')
  862.  zzz=WriteLn(CON,'')
  863.  DO j=1 TO cat.i.0                   /* Make thumbnails */
  864.   zzz=WriteLn(CON,LUP||'                                                                       ')
  865.   TXString.j=cat.i.j
  866.   IF VERIFY(txstring.j,'/:','MATCH')~=0 THEN DO
  867.    IF LastPos('/',TXString.j)=0 THEN DO
  868.     IF Index(TXString.j,':')~=0 THEN txstring.j=substr(txstring.j,Index(TXString.j,':')+1)
  869.                                      END
  870.    ELSE txstring.j=substr(txstring.j,lastpos('/',txstring.j)+1)
  871.   END
  872.   dum1= cat.1.0*(cats-i-1)
  873.   IF cats-i<2 THEN dum1=0
  874.   CatToGo=cat.i.0-j + cat.cats.0 + dum1
  875.   IF i=cats THEN CatToGo=cat.i.0-j
  876.   IF CatToGo=0 THEN CatToGo="finished)"
  877.                ELSE CatToGo=RIGHT(CatToGo,LENGTH(cats*cat.1.0))||" to go)"
  878.  
  879.   zzz=WriteLn(CON,LUP||' Processing entry #'||j||RIGHT('',LENGTH(cat.i.0))||' (then '||CatToGo||' : '||TXString.j)
  880.   zzz=WriteLn(CON,'                                                                       ')
  881.   zzz=WriteLn(CON,LUP||'  Loading...')
  882.   ADDRESS REXX "REXX:CatMakePrePicLoad.rexx" cat.i.j
  883.   LOAD '"'||cat.i.j||'"'
  884.   rca=rc
  885.   ADDRESS REXX "REXX:CatMakePostPicLoad.rexx" cat.i.j
  886.   IF rca=0 | (rca~=0 & ProcOnErr='YES') THEN DO
  887.    IF rca~=0 THEN DO                 /* Create error-pic */
  888.     LFORMAT 'BACKDROP'
  889.     LOAD "X" "COLOR" TWID THEI Back1R Back1G Back1B Back2R Back2G Back2B Back3R Back3G Back3B Back4R Back4G Back4B
  890.     Operator "TEXT_VISUAL" FONT_TYPE HeaderType FONT_NAME HeaderName SET_FONT_SIZE HeaderSize RENDER_TYPE MIX SET_EMBOSS HeaderEmbossAmount,
  891.                            EMBOSS_DIRECTION HeaderEmbossDirection SET_TEXT_STYLE HeaderStyle SET_BLUR '-1' SET_COLORS HeaderR HeaderG HeaderB,
  892.                            SET_SATURATION 100 SET_TEXT_STYLE 0 SET_TINT 0 SET_TRACKING 0 SET_RENDER 100,
  893.                            STRING '"'||ProcOnStr||'"' TEXT_HANDLE LEFT CENTER_XOFFSET CENTER_YOFFSET DRAW
  894.     LFORMAT 'UNIVERSAL'
  895.    END
  896.    XSIZE
  897.    XSz.j=adpro_result
  898.    YSIZE
  899.    YSz.j=adpro_result
  900.    IMAGE_TYPE
  901.    IType=AdPro_Result
  902.    IF INDEX(IType,'BITPLANE')~=0 THEN DO
  903.     RENDER_TYPE
  904.     rest=AdPro_Result
  905.     IF AdPro_Result~='EHB' & AdPro_Result~='HAM' & AdPro_Result~='CUST' & AdPro_Result~='HAM8' THEN DO
  906.      CDepth=0
  907.      DO UNTIL rest=1
  908.       CDepth=CDepth+1
  909.       rest=rest/2
  910.      END
  911.     END
  912.     ELSE CDepth=rest
  913.    END
  914.    ELSE DO
  915.     IF INDEX(IType,'COLOR')~=0 THEN CDepth=24
  916.                                ELSE CDepth='8BW'
  917.    END
  918.    ColorDepth.j=CDepth
  919.    IF INDEX(IType,'COLOR')=0 & INDEX(IType,'GRAY')=0 THEN DO
  920.    zzz=WriteLn(CON,LUP||'  Converting to RAW-Data...')
  921.     OPERATOR 'RENDER_TO_RAW'
  922.     IF rc~=0 THEN CALL ERR('Error while rendering'||NL||'to Raw (not enough mem?)')
  923.    END
  924.    IF MakeAlt='YES' THEN DO                /* Convert to alternate image */
  925.     bb=''
  926.     zzz=WriteLn(CON,LUP||'  Building alternate representation...')
  927.     ADDRESS REXX "REXX:CatMakePreAltProcess.rexx"
  928.     IF upper(SMode)~='RAW' THEN DO
  929.      zzz=WriteLn(CON,'                                                                       ')
  930.      zzz=WriteLn(CON,LUP||'   Rendering to '||Colors||' colors...')
  931.      render_type Colors
  932.      /*SCREEN_TYPE SType*/
  933.      execute
  934.      bb=LUP
  935.     END
  936.  
  937.     IF LEFT(Extension,1)='.' THEN Extension=SUBSTR(Extension,2)
  938.     IF INDEX(cat.i.j,'.')~=0 THEN fileo=LEFT(cat.i.j,LASTPOS('.',cat.i.j))||Extension
  939.                              ELSE fileo=cat.i.j||'.'||Extension
  940.     zzz=WRITELN(CON,bb||'                                                                       ')
  941.     zzz=WRITELN(CON,LUP||'   Saving alternate image as '||SForm||'...')
  942.     SFORMAT SForm
  943.     SAVE '"'||fileo||'"' SMode
  944.     IF rc~=0 THEN DO
  945.      okay1 'Error while saving'||NL||'alternate image as :'||fileo
  946.     END
  947.     SFORMAT IFF
  948.     zzz=WriteLn(CON,LUP||'                                                                    ')
  949.     zzz=WriteLn(CON,LUP||LUP||'                                                                    ')
  950.     zzz=WriteLn(CON,LUP)
  951.    END
  952.  
  953.    ActWid=TWID
  954.    ActHei=THEI
  955.    IF Seperate='YES' THEN XScale=FSizeMax
  956.                      ELSE XScale=0
  957.  
  958.    IF SizeMode='ABSOLUTE' THEN DO
  959.                                 zzz=WriteLn(CON,LUP||'                                                                       ')
  960.                                 zzz=WriteLn(CON,LUP||'  Scaling to '||TWID||' x '||THEI||'...')
  961.                                 ABS_SCALE ActWid ActHei-XScale
  962.                                END
  963.                           ELSE DO
  964.                                 zzz=WriteLn(CON,LUP||'                                                                       ')
  965.                                 IF Seperate='YES' THEN THII=THEI-XScale
  966.                                                   ELSE THII=THEI
  967.                                 PctA=XSz.j/TWID
  968.                                 IF YSz.j/PctA>THII THEN DO
  969.                                  PctA=YSz.j/THII
  970.                                 END
  971.                                 NewX=TRUNC(XSz.j/PctA)
  972.                                 NewY=TRUNC(YSz.j/PctA)
  973.                                 zzz=WriteLn(CON,LUP||'  Scaling to '||NewX||' x '||NewY||'...')
  974.                                 ABS_SCALE NewX NewY
  975.                                 ActWid=NewX
  976.                                 ActHei=NewY
  977.                                END
  978.    zzz=WriteLn(CON,LUP||'                                                                       ')
  979.    zzz=WriteLn(CON,LUP||'  Adding Textline...')
  980.  
  981.    image_type
  982.    if index(adpro_result,'GRAY')~=0 THEN OPERATOR "GRAY_TO_COLOR"
  983.  
  984.    zzz=WriteLn(CON,LUP||'                                                                       ')
  985.    zzz=WriteLn(CON,LUP||'  Saving temporary thumbnail...')
  986.    SAVE TDir||'CAT.'||j RAW
  987.    if j>1 THEN XtraString=NL||'       Volume full ?!'
  988.           ELSE XtraString=NL||'TempDir-Path incorrect ?!'
  989.    if rc~=0 then CALL ERR('Error while saving'||NL||'temporary thumbnail!'||XtraString)
  990.    if j<cat.i.0 then zzz=WriteLn(CON,LUP||LUP)
  991.    reallyloaded=reallyloaded+1
  992.   end
  993.   else reallyloaded=reallyloaded-1
  994.  end
  995.  
  996.  IF reallyloaded>0 THEN DO
  997.   zzz=WriteLn(CON,LUP||'                                                                       ')
  998.   zzz=WriteLn(CON,LUP||LUP||'                                                                       ')
  999.   zzz=WriteLn(CON,LUP||' Creating blank catalog...')
  1000. /*
  1001.   LFORMAT 'BACKLINE'                  /* Create blank catalog */
  1002.   LOAD "X" "COLOR" PWI PHE Back2Pos Back1R Back1G Back1B Back2R Back2G Back2B Back3R Back3G Back3B BackDir
  1003. */
  1004.   LFORMAT "BACKDROP"
  1005.   LOAD "X" "COLOR" PWI PHE Back1R Back1G Back1B Back2R Back2G Back2B Back3R Back3G Back3B Back4R Back4G Back4B
  1006.  
  1007.   LFORMAT 'IFF'
  1008.  
  1009.   LST=' '
  1010.   DO j=1 to THI-1                     /* The wrapped tiles...*/
  1011.    LST=LST||TWI*j+1||' '
  1012.   END
  1013.  
  1014.   cx=1
  1015.   cy=1
  1016.   zzz=WriteLn(CON,LUP||'                                                                        ')
  1017.   IF cat.i.0>1 then dum1='ies'
  1018.                else dum1='y'
  1019.   zzz=WriteLn(CON,LUP||' Composing '||cat.i.0||' entr'||dum1||'...')
  1020.   zzz=WriteLn(CON,'')
  1021.   do j=1 to cat.i.0                   /* Compose thumbnails */
  1022.    if INDEX(LST,' '||j||' ')~=0 then do
  1023.                       cy=cy+THEI+1
  1024.                       cx=1
  1025.                      end
  1026.    filename=TDir||'CAT.'||j
  1027.    zzz=WriteLn(CON,LUP||'                                                                       ')
  1028.    zzz=WriteLn(CON,LUP||'  Loading a thumbnail...')
  1029.    LOAD filename cx cy 100
  1030.    if rc=10 then CALL ERR('Error while loading'||NL||'temporary thumbnail !'||NL||'(Whereas saving was succesful)')
  1031.    cx=cx+TWID+1
  1032.   end
  1033.  
  1034.   if mode='BLACKWHITE' then OPERATOR "COLOR_TO_GRAY" /* Render catalog */
  1035.   zzz=WriteLn(CON,LUP||'                                                                       ')
  1036.   zzz=WriteLn(CON,LUP||'  Drawing rectangles and texts...')
  1037.   k=0
  1038.  
  1039.   /* Draw some rectangles and text */
  1040.   DO y=1 to THI
  1041.    IF (y-1)*(THEI+1)+THEI+2>=PHE THEN a=PHE-(y-1)*(THEI+1)-1
  1042.                                  ELSE a=THEI+2
  1043.    DO x=1 to TWI
  1044.     IF (x-1)*(TWID+1)+TWID+2>=PWI THEN b=PWI-(x-1)*(TWID+1)-1
  1045.                                   ELSE b=TWID+2
  1046.     k=k+1
  1047.     IF cat.i.0>=k THEN DO
  1048.      /* Render the textstrings */
  1049.      TXStr=TXString.k
  1050.      Operator "RECTANGLE" (x-1)*(TWID+1)+3 y*(THEI+1)-FSizeMax b-6 FSizeMax "-1" MixR MixG MixB MixFactor
  1051.      IF Seperate="YES" THEN DO
  1052.       Operator "RECTANGLE" (x-1)*(TWID+1) y*(THEI+1)-FSizeMax-1 b FSizeMax+2 1 BorderR BorderG BorderB
  1053.      END
  1054.      IF Sizing="BOTTOM" THEN ExtraSize=F2Size+2
  1055.                         ELSE ExtraSize=0
  1056.      Operator "TEXT_VISUAL" FONT_TYPE FType FONT_NAME FName SET_FONT_SIZE FSize RENDER_TYPE MIX,
  1057.                             EMBOSS_DIRECTION OFF SET_TEXT_STYLE 0 SET_BLUR '-1' SET_COLORS TextR TextG TextB,
  1058.                             SET_SATURATION 100 SET_TEXT_STYLE 0 SET_TINT 0 SET_TRACKING 0 SET_RENDER 100,
  1059.                             STRING '"'||TXStr||'"' TEXT_HANDLE LEFT SET_XOFFSET (x-1)*(TWID+1)+5 SET_YOFFSET y*(THEI+1)-FSize-ExtraSize DRAW
  1060.      IF Sizing='YES' | Sizing='RIGHT' | Sizing="BOTTOM" THEN DO
  1061.       TX2Str=XSz.k||'x'||YSz.k||'x'||ColorDepth.k
  1062.       IF Sizing='YES' | Sizing='RIGHT' THEN DO
  1063.        Operator "TEXT_VISUAL" FONT_TYPE F2Type FONT_NAME F2Name SET_FONT_SIZE F2Size RENDER_TYPE MIX,
  1064.                               EMBOSS_DIRECTION OFF SET_TEXT_STYLE 0 SET_BLUR '-1' SET_COLORS SizeR SizeG SizeB,
  1065.                               SET_SATURATION 100 SET_TEXT_STYLE 0 SET_TINT 0 SET_TRACKING 0 SET_RENDER 100,
  1066.                               STRING TX2Str TEXT_HANDLE RIGHT SET_XOFFSET x*(TWID+1)-5 SET_YOFFSET y*(THEI+1)-F2Size DRAW
  1067.       END
  1068.       ELSE DO
  1069.        Operator "TEXT_VISUAL" FONT_TYPE F2Type FONT_NAME F2Name SET_FONT_SIZE F2Size RENDER_TYPE MIX,
  1070.                               EMBOSS_DIRECTION OFF SET_TEXT_STYLE 0 SET_BLUR '-1' SET_COLORS SizeR SizeG SizeB,
  1071.                               SET_SATURATION 100 SET_TEXT_STYLE 0 SET_TINT 0 SET_TRACKING 0 SET_RENDER 100,
  1072.                               STRING TX2Str TEXT_HANDLE LEFT SET_XOFFSET (x-1)*(TWID+1)+5 SET_YOFFSET y*(THEI+1)-F2Size DRAW
  1073.        IF Seperate="YES" THEN DO
  1074.         Operator "RECTANGLE" (x-1)*(TWID+1) y*(THEI+1)-F2Size-1 b F2Size+2 1 BorderR BorderG BorderB
  1075.        END
  1076.       END
  1077.      END
  1078.     END
  1079.     OPERATOR "RECTANGLE" (x-1)*(TWID+1) (y-1)*(THEI+1) b a 1 BorderR BorderG BorderB
  1080.    END
  1081.   END
  1082.  
  1083.   IF AddHeader='YES' THEN DO
  1084.    result=SETCLIP('CatMakeHeader',HeaderString)
  1085.    ADDRESS REXX "REXX:CatMakePreAddheader.rexx" i
  1086.    HeaderString=GETCLIP('CatMakeHeader')
  1087.    result=SETCLIP('CatMakeHeader')
  1088.    AddedHeader=1
  1089.    SFORMAT "IFF"
  1090.    SAVE TDir||"CatMake.Catalog.TMP" RAW
  1091.    LFORMAT "BACKDROP"
  1092.    LOAD "X" "COLOR" PWI PHEBack Back1R Back1G Back1B Back2R Back2G Back2B Back3R Back3G Back3B Back4R Back4G Back4B
  1093.    LFORMAT "IFF"
  1094.    LOAD TDir||"CatMake.Catalog.TMP" 0 HeaderSize+2 100
  1095.    IF CenterHeader="YES" THEN CString='CENTER_XOFFSET'
  1096.                          ELSE CString=''
  1097.    Operator "TEXT_VISUAL" FONT_TYPE HeaderType FONT_NAME HeaderName SET_FONT_SIZE HeaderSize RENDER_TYPE MIX SET_EMBOSS HeaderEmbossAmount,
  1098.                           EMBOSS_DIRECTION HeaderEmbossDirection SET_TEXT_STYLE HeaderStyle SET_BLUR '-1' SET_COLORS HeaderR HeaderG HeaderB,
  1099.                           SET_SATURATION 100 SET_TEXT_STYLE 0 SET_TINT 0 SET_TRACKING 0 SET_RENDER 100,
  1100.                           STRING '"'||HeaderString||'"' TEXT_HANDLE LEFT SET_XOFFSET HeaderOffset SET_YOFFSET 2 CString DRAW
  1101.    OPERATOR "RECTANGLE" 0 0 (x-2)*(TWID+1)+b HeaderSize+3 1 BorderR BorderG BorderB
  1102.    ADDRESS COMMAND "C:Delete >NIL: "||TDir||"CatMake.Catalog.TMP"
  1103.   END
  1104.   zzz=WriteLn(CON,LUP||'                                                                       ')
  1105.   if CatMode~='RAW' then do
  1106.    zzz=WriteLn(CON,LUP||'  Rendering catalog...')
  1107.    RENDER_TYPE Cols
  1108.    /*SCREEN_TYPE SType*/
  1109.    ADDRESS REXX "REXX:CatMakePreCatRender.rexx" i
  1110.    EXECUTE
  1111.    zzz=WriteLn(CON,LUP||'                                                                       ')
  1112.   end
  1113.   TXString=catbase
  1114.   if verify(txstring,'/:','MATCH')~=0 then do
  1115.    IF LastPos('/',TXString)=0 then do
  1116.     if Index(TXString,':')~=0 then txstring=substr(txstring,Index(TXString,':')+1)
  1117.                                    end
  1118.    else txstring=substr(txstring,lastpos('/',txstring)+1)
  1119.   end
  1120.   zzz=WriteLn(CON,LUP||'  Saving catalog as '||CatForm||' under '||TXString||i||'...')
  1121.   SFORMAT CatForm
  1122.   IF cats=1 THEN IString=''
  1123.             ELSE DO
  1124.                   IString=i
  1125.                   IF AddSaver="YES" THEN IString=IString||'.'
  1126.                  END
  1127.   IF AddSaver="YES" THEN IString=IString||CatForm
  1128.   File=CatBase||IString
  1129.  
  1130.   result=SETCLIP('CatMakeCatName',File)
  1131.   ADDRESS REXX "REXX:CatMakePreCatSave.rexx" File
  1132.   File=GETCLIP('CatMakeCatName')
  1133.   result=SETCLIP('CatMakeCatName')
  1134.  
  1135.   SAVE '"'||File||'"' CatMode
  1136.   ADDRESS REXX "REXX:CatMakePostCatSave.rexx" File
  1137.   zzz=WriteLn(CON,LUP||'                                                                       ')
  1138.   zzz=WriteLn(CON,LUP||'  Deleting temporary files...')
  1139.   ADDRESS COMMAND 'C:Delete >NIL: '||TDir||'CAT.#? QUIET'
  1140.   if i<cats then zzz=WriteLn(CON,LUP||LUP||LUP)
  1141.  END
  1142. END
  1143. dum1=LASTPOS('/',CatBase)
  1144. IF dum1~=0 THEN CatBasis=substr(CatBase,dum1+1)
  1145.            ELSE DO
  1146.                  dum1=POS(':',CatBase)
  1147.                  IF dum1~=0 THEN CatBasis=substr(CatBase,dum1+1)
  1148.                             ELSE CatBasis='_Catalog.'
  1149.                 END
  1150.  
  1151. /* Save prefs */
  1152. SaveData:
  1153. IF OPEN(Prefs2,"ENVARC:CatMakeAdPro.prefs","W") THEN DO
  1154.  zzz=WriteLn(Prefs2,'Version V'||NeedVersion)
  1155.  zzz=WriteLn(Prefs2,"  These are the current default settings for R.Adolph's CatalogGenerator")
  1156.  zzz=WriteLn(Prefs2,'           written in ARexx for use with The Art Department Pro')
  1157.  zzz=WriteLn(Prefs2,'')
  1158.  zzz=WriteLn(Prefs2,'FontPrefs')
  1159.  zzz=WriteLn(Prefs2,' Fontname       = '||FName)
  1160.  zzz=WriteLn(Prefs2,' Fontsize       = '||FSize)
  1161.  zzz=WriteLn(Prefs2,' Fonttype       = '||FType)
  1162.  zzz=WriteLn(Prefs2,' TextR          = '||TextR)
  1163.  zzz=WriteLn(Prefs2,' TextG          = '||TextG)
  1164.  zzz=WriteLn(Prefs2,' TextB          = '||TextB)
  1165.  zzz=WriteLn(Prefs2,' Size           = '||Sizing)
  1166.  zzz=WriteLn(Prefs2,' Size_Fontname  = '||F2Name)
  1167.  zzz=WriteLn(Prefs2,' Size_Fontsize  = '||F2Size)
  1168.  zzz=WriteLn(Prefs2,' Size_Fonttype  = '||F2Type)
  1169.  zzz=WriteLn(Prefs2,' SizeR          = '||SizeR)
  1170.  zzz=WriteLn(Prefs2,' SizeG          = '||SizeG)
  1171.  zzz=WriteLn(Prefs2,' SizeB          = '||SizeB)
  1172.  zzz=WriteLn(Prefs2,' Seperate       = '||Seperate)
  1173.  zzz=WriteLn(Prefs2,' Header         = '||AddHeader)
  1174.  zzz=WriteLn(Prefs2,' HeaderFontname = '||HeaderName)
  1175.  zzz=WriteLn(Prefs2,' HeaderFontsize = '||HeaderSize)
  1176.  zzz=WriteLn(Prefs2,' HeaderFonttype = '||HeaderType)
  1177.  zzz=WriteLn(Prefs2,' HeaderEmboss   = '||HeaderEmbossDirection)
  1178.  zzz=WriteLn(Prefs2,' HeaderEmbAmnt  = '||HeaderEmbossAmount)
  1179.  zzz=WriteLn(Prefs2,' HeaderTxtstyle = '||HeaderStyle)
  1180.  zzz=WriteLn(Prefs2,' HeaderOffset   = '||HeaderOffset)
  1181.  zzz=WriteLn(Prefs2,' CenterHeader   = '||CenterHeader)
  1182.  zzz=WriteLn(Prefs2,' HeaderR        = '||HeaderR)
  1183.  zzz=WriteLn(Prefs2,' HeaderG        = '||HeaderG)
  1184.  zzz=WriteLn(Prefs2,' HeaderB        = '||HeaderB)
  1185.  zzz=WriteLn(Prefs2,' HeaderString   = '||HeaderString)
  1186.  zzz=WriteLn(Prefs2,'')
  1187.  zzz=WriteLn(Prefs2,'Other')
  1188.  zzz=WriteLn(Prefs2,' DirMode        = '||dirm)
  1189.  zzz=WriteLn(Prefs2,' Sorting        = '||sorting)
  1190.  zzz=WriteLn(Prefs2,' SaveOnError    = '||SaveOnError)
  1191.  zzz=WriteLn(Prefs2,' ProceedOnError = '||ProcOnErr)
  1192.  zzz=WriteLn(Prefs2,' ProceedErrStr  = '||ProcOnStr)
  1193.  zzz=WriteLn(Prefs2,' StripMode      = '||CharMain||'+'||CharExtension)
  1194.  zzz=WriteLn(Prefs2,' TempDir        = '||TDir)
  1195.  zzz=WriteLn(Prefs2,' Wildcard       = '||Wildcard)
  1196.  zzz=WriteLn(Prefs2,' ExamineFiles   = '||ExamineFiles)
  1197.  zzz=WriteLn(Prefs2,' ExamineNames   = '||ExamineNames)
  1198.  zzz=WriteLn(Prefs2,' ScreenShuffle  = '||Shuffle)
  1199.  zzz=WriteLn(Prefs2,'')
  1200.  zzz=WriteLn(Prefs2,'Catalogprefs')
  1201.  zzz=WriteLn(Prefs2,' CatalogBase    = '||CatBasis)
  1202.  zzz=WriteLn(Prefs2,' SFormat-String = '||CatForm)
  1203.  zzz=WriteLn(Prefs2,' AddSaverString = '||AddSaver)
  1204.  zzz=WriteLn(Prefs2,' SaveMode       = '||CatMode)
  1205.  zzz=WriteLn(Prefs2,' RawMode        = '||Mode)
  1206.  zzz=WriteLn(Prefs2,' SizeMode       = '||SizeMode)
  1207.  zzz=WriteLn(Prefs2,' Colors         = '||Cols)
  1208.  zzz=WriteLn(Prefs2,' CatalogWidth   = '||PWI)
  1209.  zzz=WriteLn(Prefs2,' CatalogHeight  = '||PHEBack)
  1210.  zzz=WriteLn(Prefs2,' X-Tiles        = '||TWI)
  1211.  zzz=WriteLn(Prefs2,' Y-Tiles        = '||THI)
  1212.  zzz=WriteLn(Prefs2,' TileMode       = '||TMode)
  1213.  zzz=WriteLn(Prefs2,' BorderR        = '||BorderR)
  1214.  zzz=WriteLn(Prefs2,' BorderG        = '||BorderG)
  1215.  zzz=WriteLn(Prefs2,' BorderB        = '||BorderB)
  1216.  zzz=WriteLn(Prefs2,' Mixing         = '||MixFactor)
  1217.  zzz=WriteLn(Prefs2,' MixR           = '||MixR)
  1218.  zzz=WriteLn(Prefs2,' MixG           = '||MixG)
  1219.  zzz=WriteLn(Prefs2,' MixB           = '||MixB)
  1220.  zzz=WriteLn(Prefs2,' Background1R   = '||Back1R)
  1221.  zzz=WriteLn(Prefs2,' Background1G   = '||Back1G)
  1222.  zzz=WriteLn(Prefs2,' Background1B   = '||Back1B)
  1223.  zzz=WriteLn(Prefs2,' Background2R   = '||Back2R)
  1224.  zzz=WriteLn(Prefs2,' Background2G   = '||Back2G)
  1225.  zzz=WriteLn(Prefs2,' Background2B   = '||Back2B)
  1226.  zzz=WriteLn(Prefs2,' Background3R   = '||Back3R)
  1227.  zzz=WriteLn(Prefs2,' Background3G   = '||Back3G)
  1228.  zzz=WriteLn(Prefs2,' Background3B   = '||Back3B)
  1229.  zzz=WriteLn(Prefs2,' Background4R   = '||Back4R)
  1230.  zzz=WriteLn(Prefs2,' Background4G   = '||Back4G)
  1231.  zzz=WriteLn(Prefs2,' Background4B   = '||Back4B)
  1232.  zzz=WriteLn(Prefs2,' Back2Pos       = '||Back2Pos)
  1233.  zzz=WriteLn(Prefs2,' BackDirection  = '||BackDir)
  1234.  zzz=WriteLn(Prefs2,'')
  1235.  zzz=WriteLn(Prefs2,'Rerenderprefs')
  1236.  zzz=WriteLn(Prefs2,' MakeAlternate  = '||MakeAlt)
  1237.  zzz=WriteLn(Prefs2,' RenderedColors = '||Colors)
  1238.  zzz=WriteLn(Prefs2,' SFormat-String = '||SForm)
  1239.  zzz=WriteLn(Prefs2,' SaveMode       = '||SMode)
  1240.  zzz=WriteLn(Prefs2,' Extension      = '||Extension)
  1241.  zzz=CLOSE(Prefs2)
  1242. END
  1243. LFORMAT OldLoader
  1244. SFORMAT OldSaver
  1245. IF DelList.0>0 THEN DO
  1246.  DO i=1 TO DelList.0
  1247.   ADDRESS COMMAND "Delete <>NIL:" DelList.i
  1248.  END
  1249. END
  1250. IF PPList.0>0 THEN DO
  1251.  DO i=1 TO PPList.0
  1252.   ADDRESS COMMAND "PPack <>NIL:" PPList.i "nosuffix noper"
  1253.  END
  1254. END
  1255. IF WindowOpen THEN zzz=Delay(250)
  1256. EXIT
  1257.  
  1258. BREAK_C:                                  /* Interrupts */
  1259.  CALL ERR('CatMake terminated by user')
  1260. EXIT
  1261. BREAK_D:
  1262.  CALL ERR('CatMake terminated by user')
  1263. EXIT
  1264. SYNTAX:
  1265.   CALL ERR('Syntax Error '||RC||' in line '||SIGL||' !'||NL||ERRORTEXT(RC))
  1266. EXIT
  1267.  
  1268. ERR:
  1269. PARSE ARG String
  1270.   IF String~='' THEN OKAY1 String
  1271.   IF SaveOnError='YES' THEN SIGNAL SaveData
  1272.   ADDRESS COMMAND 'C:Delete >NIL: '||TDir||'CAT.#?'
  1273.   EXIT 20
  1274. RETURN
  1275.  
  1276. QueryTiling:
  1277.  GETNUMBER "'X-Tiling? "||fl.0||" pics'" 3 1 64
  1278.  if rc~=0 then do
  1279.   exit 20
  1280.  end
  1281.  TWI=ADPro_Result
  1282.  GETNUMBER "'Y-Tiling? "||fl.0||" pics'" 3 1 64
  1283.  if rc~=0 then do
  1284.   exit 20
  1285.  end
  1286.  THI=ADPro_Result
  1287. RETURN
  1288.  
  1289. UnPack: PROCEDURE EXPOSE DelList. PPList. TDir
  1290. PARSE ARG Mode,File,Path
  1291.  SELECT
  1292.   WHEN Mode="LHA" THEN DO                 /* Extract first file form archive */
  1293.    SAY "Unpacking LHA : "||File
  1294.    ADDRESS COMMAND "LHA >"||TDir||"CatMakeTemp lq "||File
  1295.    IF rc~=0 THEN RETURN File
  1296.    IF ~OPEN(In,TDir||"CatMakeTemp","R") THEN RETURN File
  1297.    DO i=1 TO 4
  1298.     erg=READLN(In)
  1299.    END
  1300.    rc=CLOSE(In)
  1301.    ADDRESS COMMAND "Delete <>NIL: "||TDir||"CatMakeTemp"
  1302.    ADDRESS COMMAND "LHA -q e" File erg Path
  1303.    File=erg
  1304.    i=DelList.0+1
  1305.    DelList.i=Path||File
  1306.    DelList.0=i
  1307.   END
  1308.   WHEN Mode="PP" THEN DO                  /* Decrunch PP-File */
  1309.    SAY "Unpacking PP  : "||File
  1310.    ADDRESS COMMAND "ppack <>NIL:" File "decrunch noper"
  1311.    IF rc~=0 THEN RETURN File
  1312.    i=PPList.0+1
  1313.    PPList.i=File
  1314.    PPList.0=i
  1315.   END
  1316.   OTHERWISE NOP
  1317.  END
  1318. RETURN File
  1319.  
  1320. ExamineFile: PROCEDURE
  1321. PARSE ARG Filename
  1322.  IF ~OPEN(File,Filename,"R") THEN RETURN 0
  1323.  erg=READCH(File,5)
  1324.  SELECT
  1325.   WHEN RIGHT(erg,3)="-lh" THEN erg="LHA"
  1326.   WHEN erg=X2C("5050323009") THEN erg="PP"
  1327.   OTHERWISE NOP
  1328.  END
  1329.  Filename=CLOSE(File)
  1330. RETURN Erg
  1331.  
  1332. SetDefs:
  1333.  PrefsVersion=NeedVersion
  1334.  FName="Helvetica"
  1335.  FSize=11
  1336.  FType="BITMAPPED"
  1337.  TextR=255
  1338.  TextG=255
  1339.  TextB=155
  1340.  Sizing="RIGHT"
  1341.  F2Name="Helvetica"
  1342.  F2Size=9
  1343.  F2Type="BITMAPPED"
  1344.  SizeR=200
  1345.  SizeG=200
  1346.  SizeB=200
  1347.  Seperate="YES"
  1348.  AddHeader="YES"
  1349.  HeaderName="Helvetica"
  1350.  HeaderSize=13
  1351.  HeaderType="BITMAPPED"
  1352.  HeaderEmbossDirection="OUT"
  1353.  HeaderEmbossAmount=100
  1354.  HeaderStyle=0
  1355.  HeaderOffset=1
  1356.  CenterHeader="YES"
  1357.  HeaderR=175
  1358.  HeaderG=175
  1359.  HeaderB=160
  1360.  HeaderString="Created with CatMake, © by R.Adolph"
  1361.  IF ~Arguments THEN dirm="WHOLE"
  1362.  Sorting="ALPHA"
  1363.  SaveOnError="YES"
  1364.  ProcOnErr="YES"
  1365.  ProcOnStr="Corrupted!"
  1366.  CharStripping="8+3"
  1367.  TDir="T:"
  1368.  WildCard="*"
  1369.  ExamineFiles="NO"
  1370.  ExamineNames="NO"
  1371.  Shuffle="NO"
  1372.  CatBasis="_Catalog."
  1373.  CatForm="IFF"
  1374.  AddSaver="YES"
  1375.  CatMode="IMAGE"
  1376.  Mode="COLOR"
  1377.  SizeMode="RELATIVE"
  1378.  Cols=256
  1379.  PWI=640
  1380.  PHE=480
  1381.  PHEBack=480
  1382.  TWI=4
  1383.  THI=4
  1384.  TMode="3x3"
  1385.  BorderR=255
  1386.  BorderG=255
  1387.  BorderB=255
  1388.  MixFactor=40
  1389.  MixR=0
  1390.  MixG=0
  1391.  MixB=0
  1392.  Back1R=0
  1393.  Back1G=0
  1394.  Back1B=0
  1395.  Back2R=0
  1396.  Back2G=0
  1397.  Back2B=0
  1398.  Back3R=0
  1399.  Back3G=0
  1400.  Back3B=0
  1401.  Back4R=0
  1402.  Back4G=0
  1403.  Back4B=0
  1404.  Back2Pos=50
  1405.  BackDir="S"
  1406.  MakeAlt="NO"
  1407.  Colors=256
  1408.  SForm="JPEG"
  1409.  SMode="RAW"
  1410.  Extension="jpg"
  1411. CALL Main
  1412.